import apiClient from '@/plugins/axios.js'

/**
 * 用户管理相关API服务
 */
export const userAPI = {
  /**
   * 获取所有用户列表
   * @returns {Promise} 用户列表响应
   */
  getAllUsers() {
    return apiClient.get('/users')
  },

  /**
   * 根据用户名搜索用户
   * @param {string} name - 搜索关键词
   * @returns {Promise} 搜索结果响应
   */
  searchUsers(name) {
    return apiClient.get(`/users/search?name=${encodeURIComponent(name)}`)
  },

  /**
   * 获取用户统计信息
   * @returns {Promise} 用户统计响应
   */
  getUserStats() {
    return apiClient.get('/users/stats')
  },

  /**
   * 根据ID获取用户信息
   * @param {number} id - 用户ID
   * @returns {Promise} 用户信息响应
   */
  getUserById(id) {
    return apiClient.get(`/users/${id}`)
  },

  /**
   * 创建新用户
   * @param {Object} userData - 用户数据
   * @param {string} userData.username - 用户名
   * @param {string} userData.email - 邮箱
   * @param {string} userData.fullName - 全名
   * @param {string} userData.password - 密码
   * @param {boolean} userData.canLogin - 是否允许登录
   * @param {boolean} userData.isAdmin - 是否为管理员
   * @returns {Promise} 创建响应
   */
  createUser(userData) {
    return apiClient.post('/users', userData)
  },

  /**
   * 更新用户信息
   * @param {number} id - 用户ID
   * @param {Object} userData - 更新的用户数据
   * @returns {Promise} 更新响应
   */
  updateUser(id, userData) {
    return apiClient.put(`/users/${id}`, userData)
  },

  /**
   * 切换用户登录权限
   * @param {number} id - 用户ID
   * @param {boolean} canLogin - 是否允许登录
   * @returns {Promise} 更新响应
   */
  toggleUserLogin(id, canLogin) {
    return apiClient.put(`/users/${id}`, { canLogin })
  },

  /**
   * 切换用户管理员权限
   * @param {number} id - 用户ID
   * @param {boolean} isAdmin - 是否为管理员
   * @returns {Promise} 更新响应
   */
  toggleUserAdmin(id, isAdmin) {
    return apiClient.put(`/users/${id}`, { isAdmin })
  },

  /**
   * 删除用户
   * @param {number} id - 用户ID
   * @returns {Promise} 删除响应
   */
  deleteUser(id) {
    return apiClient.delete(`/users/${id}`)
  }
}

export default userAPI
